package org.example.util;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import java.time.Duration;

@Component
public class RedisUtil {
    @Autowired
    private RedisTemplate<String, String> redisTemplate;

    // 设置值
    public void setValue(String key, String value) {
        redisTemplate.opsForValue().set(key, value);
    }

    // 获取值
    public String getValue(String key) {
        return (String) redisTemplate.opsForValue().get(key);
    }

    // 删除值
    public void deleteValue(String key) {
        redisTemplate.delete(key);
    }

    // 设置值和过期时间
    public void setValueWithExpire(String key, String value, long expireSeconds) {
        // 设置值和过期时间（秒）
        redisTemplate.opsForValue().set(key, value, Duration.ofSeconds(expireSeconds));
    }

    // 判断当前的 key 和 value 是否存在
    public Boolean ifExistKeyAndValue(String key,String value) {
        // 获取 Redis 中的值
        String redisValue = redisTemplate.opsForValue().get(key);
        // 检查值是否存在且匹配
        return redisValue != null && redisValue.equals(value);
    }
}
